# python中  包是一个包含 __init__.py 的文件夹
02.包
    a) 传统型的 package, 包含有一个 __init__.py 文件的目录
    b) 包是带有 __path__ 属性的 Python 模块
    c) A.B    A包中的模块B

Note:
    i. 当使用 from package import item 时, item可以是包的子模块(或子包), 也可以是包中定义的其他名称, 如函数, 类或变量。
        import 语句首先测试是否在包中定义了item; 如果没有, 它假定它是一个模块并尝试加载它。如果找不到它, 则引发 ImportError 异常
    ii. 当使用 import item.subitem.subsubitem 这样的语法时, 除了最后一项之外的每一项都必须是一个包; 最后一项可以是模块或包,
        但不能是前一项中定义的类或函数或变量
    iii. from package import * 显然会导入包中的所有内容, 很耗时间, 因此通过__all__=['one', 'two', 'three']来指
        在遇到 from package import * 时应该导入的模块名列表
    iv. 相对导入 from .. import module
'''
包A:
|
|----__init__.py
|----模块B.py              # 如果 模块B 需要导入包 C  则 from . import C
|----包C
|    |---__init__.py
|    |---模块D.py          # 如果 模块D 需要导入包 模块F  则 from ..E import F
|
|----包E
     |---__init__.py
     |---模块F.py          # 如果 模块F 需要导入包 模块B 中的变量G  则 from ..B import G

'''
